package util;

import entity.MFD;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Init_MFD {
    private static List<MFD> mfds;
    public static final String root = "./root";

    public static void init() {
        if (mfds != null)
            return;
        mfds = new ArrayList<>();
        File file = new File(root);
        if (!file.exists()) {
            file.mkdirs(); // 如果目录不存在，尝试创建该目录
        }
        File[] files = file.listFiles();
        if (files == null) {
            return; // 如果是null，则直接返回，避免NullPointerException
        }
        for (File f : files) {
            String fname = f.getName();
            mfds.add(new MFD(fname, fname, root + "/" + fname));
        }
    }

    public static MFD login(String username, String password) {
        init();
        for (MFD mfd : mfds) {
            if (mfd.getUsername().equals(username)) {
                if (mfd.getPassword().equals(password)) {
                    System.out.println("登录成功");
                    return mfd;
                }
                System.out.println("密码输入错误");
                return null;
            }
        }
        System.out.println("该用户不存在，正在创建新用户...");
        return createUser(username, password);
    }

    private static MFD createUser(String username, String password) {
        File newUserFile = new File(root, username);
        try {
            if (newUserFile.createNewFile()) { // 尝试创建新文件，文件名为用户名
                mfds.add(new MFD(username, password, newUserFile.getPath()));
                System.out.println("用户创建成功: " + username);
                return new MFD(username, password, newUserFile.getPath());
            } else {
                System.out.println("用户创建失败，可能文件已存在。");
                return null;
            }
        } catch (IOException e) {
            System.out.println("创建用户文件时出错: " + e.getMessage());
            return null;
        }
    }
}
